import Vue from 'vue';
import App from './App.vue';

Vue.config.productionTip = false;

// 在vue里面有可能用到混合mixins，如果遇到两个混合存在一样的，比如都有created钩子函数
// 对于一样的参加vue官网的自定义选项的混入策略，就在这个api这里
// 对于生命周期钩子，默认是两个都会运行，其他重复的看文档
// 下面是对app.vue的created钩子函数的自定义处理，注意这是一个全局配置，所有组件都生效了
Vue.config.optionMergeStrategies.created = function(parent, child) {
  // parent和child就是两个created的函数，有些组件或者混合没有created钩子函数，所以可能是undefined
  if (!parent) {
    return child;
  }
  if (!child) {
    return parent;
  }
  // 生命周期钩子要求返回一个数组，会依次运行数组中的函数
  // return [parent, child];  // 默认会运行两个生命周期created，这是默认情况
  return [child]; // 只运行child的created，child是自己组件的
};

new Vue({
  render: (h) => h(App),
}).$mount('#app');
